package com.ynet.middleground.riskmanage.bean;

import javax.validation.constraints.NotEmpty;

import com.ynet.core.common.BaseReqObj;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * @author liulx
 * @description 发票基础查验请求信息
 * @date 2020-07-31 14:50
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "发票基础查验请求信息", description = "发票基础查验请求信息")
public class InvoiceValidateReq extends BaseReqObj {

    private static final long serialVersionUID = -5095510971155078798L;

    @ApiModelProperty(value = "发票代码（全电发票不上传）", notes = "发票代码（全电发票不上传）", dataType = "String")
    // @NotEmpty(message = "发票代码不能为空")
    private String fpdm;

    @ApiModelProperty(value = "发票号码", notes = "发票号码", dataType = "String", required = true)
    @NotEmpty(message = "发票号码不能为空")
    private String fphm;

    @ApiModelProperty(value = "开票日期，如 YYYYMMDD", notes = "开票日期，如 YYYYMMDD", dataType = "String", required = true)
    @NotEmpty(message = "开票日期不能为空")
    private String kprq;

    @ApiModelProperty(value = "校验码后6位<br>发票类型为: \"04\"(普票)、\"10\"(电子票)、\"11\"(卷式发票)、\"14\"(通行费) 必传",
        notes = "校验码后6位<br>发票类型为: \"04\"(普票)、\"10\"(电子票)、\"11\"(卷式发票)、\"14\"(通行费)必传", dataType = "String")
    private String checkCode;

    @ApiModelProperty(
        value = "不含税金额：当发票种类是 \"01\"(增值税专用发票)、\"02\"(货物运输业增值税专用发票)、\"03\"(机动车销售统一发票)、\"08\"(增值税电子专用发票)、\"15\"(二手车销售统一发票) 时必传",
        notes = "不含税金额：当发票种类是 \"01\"(增值税专用发票)、\"02\"(货物运输业增值税专用发票)、\"03\"(机动车销售统一发票)、\"08\"(增值税电子专用发票)、\"15\"(二手车销售统一发票) 时必传",
        dataType = "String")
    private String noTaxAmount;

    @ApiModelProperty(value = "价税合计:当发票种类是 \"20\"全电子发票（增值税专用发票）、\"21\"全电子发票(普通发票) 时必传",
        notes = "价税合计:当发票种类是 \"20\"全电子发票（增值税专用发票）、\"21\"全电子发票(普通发票) 时必传", dataType = "String")
    private String jshj;

}
